package com.cleaningcloud.cld.mapper;

import com.cleaningcloud.cld.domain.CldMaterialDetails;
import com.cleaningcloud.cld.domain.CldProjectRepository;
import com.cleaningcloud.cld.domain.dto.CldInsuranceStaffDto;
import com.cleaningcloud.cld.domain.excelExport.ProjectRepositoryExprot;
import com.cleaningcloud.cld.domain.vo.CldInsuranceStaffVo;
import com.cleaningcloud.cld.domain.vo.CldTeamMemberDetailsVo;

import java.util.List;
import java.util.Map;

public interface CldProjectRepositoryMapper {


    // TODO: 云管理调用

    /**
     * 获取项目仓库
     * @param cldProjectRepository
     * @return
     */
    List<CldProjectRepository> selectCldProjectRepositoryList(CldProjectRepository cldProjectRepository);

    /**
     * 物资明细
     * @return
     */
    List<CldMaterialDetails> selectCldMaterialDetailsList(CldMaterialDetails cldMaterialDetails);


    /**
     * 根据岗位仓库id查询消耗记录
     * @param wareId
     * @return
     */
    List<CldMaterialDetails> selectGroupConsumeList(Long wareId);

    /**
     * 查询组员明细
     * @param projectId
     * @return
     */
    List<CldTeamMemberDetailsVo> selectCldTeamMemberDetailsList(Long projectId);

    /**
     * 查询项目管理岗
     * @param projectId
     * @return
     */
    List<Map<String,Object>> selectManagementPositions(Long projectId);

    /**
     * 查询在岗人数 总库存 库存总成本
     * @param projectId
     * @return
     */
    Map<String,Object> selectStockByProjectId(Long projectId);

    /**
     * 查询消耗总量 消耗总成本
     * @param cldProjectRepository
     * @return
     */
    Map<String,Object> selectConsumeByProjectId(CldProjectRepository cldProjectRepository);


    /**
     * 查询消耗总量 消耗总成本
     * @param cldProjectRepository
     * @return
     */
    Map<String,Object> selectConsumeByWareId(CldProjectRepository cldProjectRepository);


    /**
     * 根据项目仓库id和商品id查询员工库存数量
     * @param cldMaterialDetails
     * @return
     */
    List<Map<String,Object>> selectStaffStockList(CldMaterialDetails cldMaterialDetails);


    /**
     * @Author Shaw
     * @Description 项目仓库信息列表导出
     * @date: 2025-03-17 17:24
     * @param: //TODO
     */
    List<ProjectRepositoryExprot> exportProjectRepositoryList(ProjectRepositoryExprot projectRepositoryExprot);
}
